/**
 * 该文件主要是对axios的拦截器进行封装处理
 */

 import axios from 'axios'

 // 拦截器
 // - 请求拦截器
 axios.interceptors.request.use((cfg) => {
     /**
      * 这里是请求拦截的处理部分，使用场景：鉴权、loading请求提示、token（jwt，json web token）的统一携带等
      */
     const jwt = localStorage.getItem('jwt')
     if (jwt) {
         // 将jwt追加到头信息中
         cfg.headers.authorization = jwt
     }
     return cfg
 })
 
 // - 响应拦截器
 axios.interceptors.response.use((res) => {
     /**
      * 这里是响应拦截器的处理部分，使用场景：保存权限信息、去除loading展示、保存token等
      */
     // 存储jwt值
     if (res.data.context && res.data.context.jwt) {
         localStorage.setItem('jwt', res.data.context.jwt)
     }
     // 保存权限（acl，access control list）
     if (res.data.context && res.data.context.acl) {
         localStorage.setItem('acl', JSON.stringify(res.data.context.acl))
     }
     return res
 })
 
 export default axios
 